home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Extra 1997 #2 / Amiga Plus Extra 1997 #2.iso / pd / misc / macro / gcc / gcc.ged < prev    next >
Encoding:
Text File  |  1997-02-16  |  4.8 KB  |  201 lines

  1. /*/// Header
  2. **
  3. **  $VER: gcc.ged 0.005 (25 Feb 1995)  **
  4. **
  5. **    © 1995 Oliver Clouth
  6. **
  7. ** Address : Asternweg 5 , 51399 Burscheid
  8. **
  9. **   eMail : O.CLOUTH@TOM.bergisch-land.sub.de
  10. **
  11. **   Phone : V+49-2174-60998
  12. **
  13. **
  14. **  Aufruf :
  15. **
  16. **  gcc.ged CPU COM LANG
  17. **
  18. **
  19. **  Optionen :
  20. **
  21. **  CPU :  000   ; option -m68000 wird eingefügt ; siehe dazu auch
  22. **         020   ; option -m68020 wird eingefügt ; in die gcc
  23. **         030   ; option -m68030 wird eingefügt ; anleitung
  24. **         040   ; option -m68040 wird eingefügt ;
  25. **         024   ; option -m68020-40 wird eingefügt ;
  26. **
  27. **
  28. **  COM:   GCC   ; ruft gcc auf       (z.B. FreshFish-May94/Sep94)
  29. **         233   ; ruft gcc-2.3.3 auf (z.B. FreshFish-May94/Sep94)
  30. **         258   ; ruft gcc-2.5.8 auf (z.B. FreshFish-May94/Sep94)
  31. **         260   ; ruft gcc-2.6.0 auf (z.B. FreshFish-Sep94)
  32. **
  33. **
  34. **  LANG:  C     ; C_Config wird benutzt
  35. **         C++   ; CPP_Config wird benutzt
  36. **
  37. **  $HISTORY:
  38. **
  39. **  25 Feb 1995 :   0.005 : 3. Argument LANG eingefürt, welches für die wahl des
  40. **                          Configfiles benötigt wird.
  41. **                          Damit liegt die wahl der Sprache nicht mehr bei COM
  42. **                          und das ganze Script ist wesentlich kürzer geworden.
  43. **
  44. **  25 Feb 1995 :   0.004 : Einstellung über die files C_Config und CPP_Config
  45. **                          möglich, die im Verzeichnis ENV: stehen müssen
  46. **
  47. **  23 Feb 1995 :   0.003 : Argument mit der Angabe der gcc version eingebaut,
  48. **                          Dadurch ist das Compilieren von einem auf Festplatte
  49. **                          oder auf CD-Rom instalierten gcc möglich.
  50. **                          z.B. (FreshFish-Sep94)
  51. **                          Und damit gleich die Option ob C oder C++
  52. **
  53. **  21 Feb 1995 :   0.002 : aufruf mit Argument welches die CPU festlegt
  54. **  21 Feb 1995 :   0.001 : initial release
  55. **
  56. \\\*/
  57.  
  58. OPTIONS RESULTS                             /* enable return codes     */
  59.  
  60. if (LEFT(ADDRESS(), 6) ~= "GOLDED") then    /* not started by GoldEd ? */
  61.     address 'GOLDED.1'
  62.  
  63. 'LOCK CURRENT'                              /* lock GUI, gain access   */
  64. OPTIONS FAILAT 6                            /* ignore warnings         */
  65. SIGNAL ON SYNTAX                            /* ensure clean exit       */
  66.  
  67. host = ADDRESS()                              /* get GED's port    */
  68.  
  69. /* ------------------------- INSERT YOUR CODE HERE: ------------------ */
  70.  
  71. options results
  72. parse arg CPU COM LANG
  73.  
  74. /*/// "CPU" */
  75.  
  76.         IF CPU = 000 THEN
  77.         do
  78.           CPU = "-m68000"
  79.           EXE = "000"
  80.         end
  81.         ELSE IF CPU = 020 THEN
  82.         do
  83.           CPU = "-m68020"
  84.           EXE = "020"
  85.         end
  86.         ELSE IF CPU = 030 THEN
  87.         do
  88.           CPU = "-m68030"
  89.           EXE = "030"
  90.         end
  91.         ELSE IF CPU = 040 THEN
  92.         do
  93.           CPU = "-m68040"
  94.           EXE = "040"
  95.         end
  96.         ELSE IF CPU = 024 THEN
  97.         do
  98.           CPU = "-m68020-40"
  99.           EXE = "024"
  100.         end
  101.  
  102. /*\\\*/
  103.  
  104. /*/// "Compiler" */
  105.  
  106.         IF COM = GCC THEN
  107.         do
  108.           COM = "gcc"
  109.         end
  110.         IF COM = 233 THEN
  111.         do
  112.           COM = "gcc-2.3.3"
  113.         end
  114.         IF COM = 258 THEN
  115.         do
  116.           COM = "gcc-2.5.8"
  117.         end
  118.         IF COM = 260 THEN
  119.         do
  120.           COM = "gcc-2.6.0"
  121.         end
  122.  
  123. /*\\\*/
  124.  
  125. 'QUERY CAT'
  126. isGerman = (result = "deutsch")
  127.  
  128. 'QUERY ANYTEXT'
  129.  
  130. if (result = 'TRUE') then 
  131.  
  132.     do
  133.         'QUERY DOC VAR OLDNAME'             /* remember current file name */
  134.         
  135.         'QUERY PATH Var PFAD'
  136.         'QUERY FILE VAR FNAME'              /* Nur den Filenamen in Var FNAME */
  137.  
  138.           Name = left(FNAME, Pos('.', FNAME) - 1)
  139.          NameB = PFAD || '/' || Name
  140.  
  141.         call pragma 'D', 'BIN:'    /* Aktuelles Verzeichnis wechseln */
  142.  
  143.  
  144.         Code = EXISTS(Code)
  145.  
  146.         IF LANG = "C++" THEN
  147.         do
  148.           CONFIG = GETFILE('RAM:ENV/CPP_config')
  149.         end
  150.         ELSE IF LANG = "C" THEN
  151.         do
  152.           CONFIG = GETFILE('RAM:ENV/C_config')
  153.         end
  154.  
  155.         say
  156.         say COM OLDNAME CPU CONFIG '-o' NameB'.'EXE
  157.         say
  158.  
  159.         shell
  160.         call pragma 'Stack', 250000
  161.         COM OLDNAME CPU CONFIG '-o' NameB'.'EXE
  162.  
  163.         say
  164.         say
  165.         say
  166.         say 'FERTIG FERTIG'
  167.         say
  168.  
  169.  
  170.         ok = (RC = 0)
  171.  
  172.         shell                               /* address host (GoldED) */
  173.  
  174.         'NAME NEW ' || oldname              /* restore old file name */
  175.     end
  176.  
  177. else do
  178.  
  179.     if (isGerman) then
  180.         'REQUEST BODY="Kein Text vorhanden ?!"'
  181.     else
  182.         'REQUEST BODY="Text buffer is empty ?!"'
  183. end
  184.  
  185. 'UNLOCK' /* VERY important: unlock GUI */
  186. Exit
  187.  
  188.   GetFile:PROCEDURE
  189.  
  190.     ARG envv
  191.  
  192.     filename= envv
  193.     IF OPEN(fhandle,filename,"READ") THEN DO
  194.       readed=READLN(fhandle);
  195.       CALL CLOSE(fhandle);
  196.     END;
  197.     ELSE readed = "unset"
  198.  
  199.     RETURN readed
  200.  
  201.